fn main() {
    // the panic message for these assertions is the stringified value of the
    // expression given.
    assert!(true);

    fn some_computation() -> bool {
        true
    } // a very simple function

    assert!(some_computation());

    // assert with a custom message
    let x = true;
    assert!(x, "x wasn't true!");

    let a = 3;
    let b = 27;
    assert!(a + b == 30, "a = {}, b = {}", a, b);

    let a = 3;
    let b = 1 + 2;
    assert_eq!(a, b);

    assert_eq!(a, b, "we are testing addition with {} and {}", a, b);

    let a = 3;
    let b = 2;
    assert_ne!(a, b);

    assert_ne!(a, b, "we are testing that the values are not equal");
}
